/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package managers;

import beans.MedioComunicacion;
import dao.MedioComunicacionDao;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import util.MediosTableModel;

/**
 *
 * @author nMoncho
 */
public class ManagerMedios {

    private List<MedioComunicacion> medios;
    private ArrayList<MedioComunicacion> mediosModelo;
    private MediosTableModel model;
    private List<MedioComunicacion> mediosABorrar;

    public ManagerMedios(){
        medios = MedioComunicacionDao.getMedioComunicacion();
        rellenarModelo();

        mediosABorrar = new ArrayList<MedioComunicacion>();
    }

    private void rellenarModelo() {
        mediosModelo = new ArrayList<MedioComunicacion>();
        mediosModelo.addAll(medios);

        model = new MediosTableModel(mediosModelo);
    }

    public AbstractTableModel getModel(){
        return model;
    }

    public boolean agregarMedio(String nombre){
        for(MedioComunicacion medio : medios){
            if(medio.getNombre().toLowerCase().compareTo(nombre.toLowerCase()) == 0)
                return false;
        }

        MedioComunicacion medio = new MedioComunicacion();
        medio.setNombre(nombre);

        medios.add(medio);
        mediosModelo.add(medio);

        return true;
    }

    public void borrarMedio(int fila){
        MedioComunicacion medio = mediosModelo.get(fila);

        mediosModelo.remove(medio);
        medios.remove(medio);

        mediosABorrar.add(medio);
    }

    public boolean guardarCambios(){
        boolean exito = MedioComunicacionDao.saveOrUpdateOrDelete(medios, mediosABorrar);

        return exito;
    }
}
